package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 阿宾
 * Date: 2024-07-22
 * Time: 16:54
 */
public class DelOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("删除图书！");
        /**
         * 需要先在书架数组中找到要删除的图书，如果没有找到，则返回没有找到
         * 找到则进行数组的删除，同时更新书架上书的个数
         */
        //先判断书架是否为空，为空直接退出
        int currentSize = bookList.getUsedSize();
        if(currentSize == 0){
            System.out.println("书架为空，不能删除！");
            return;
        }
        System.out.println("请输入要删除图书的书名：");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();

        int index = -1;//用于定位要删除图书的位置
        for (int i = 0; i < currentSize; i++) {
            Book book1 = bookList.getBook(i);
            if(book1.getName().equals(name)){//找到了这本书
                index = i;//记录找到的图书下标位置
                break;
            }
        }
        if(index == -1){
            System.out.println("没有要删除的这本书！！");
            return;
        }else {
            //根据index下标位置开始删除
            //如果是删除书架最后一个书，也就是数组尾，那么不会进入循环，直接修改数组大小
            //也就是书架上书的个数即可
            for (int i = index; i < currentSize-1; i++) {
                int j = i + 1;
                Book book = bookList.getBook(j);//拿到下一本书
                bookList.setBooks(i,book);//放到书架上要删除书的位置
            }
            //修改书架上书的个数
            bookList.setUsedSize(currentSize-1);
            System.out.println("删除成功！！");
        }



    }
}
